<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
  <title>Nodewarz user's guide</title>
  <meta name="generator" content="Amaya 9.53, see http://www.w3.org/Amaya/" />
  <link rel="stylesheet" type="text/css" href="style.css" />
</head>

<body>
<h1>Nodewarz user's guide</h1>

<h2>Introduction</h2>

<p>Nodewarz is a multiplayer 3D strategy game. Your gole is to destroy the
nodes of other players by taking them over to your side or attacking them.
You also have to defend yoursef from the enemy's attack and takeovers. And
don't forget to collect credits!</p>

<h2>Compiling, installation and running</h2>

<p>Currently, these instructions apply for Linux only, because the program
was developped on Linux. Sorry, MacOsX and Windows users :(</p>

<p>To install the game, you will need to compile it. For compiling the game,
you need to have development versions of these libraries installed on your
system:</p>

<p>SDL, SDL-image, SDL-net, freetype2, OpenGL (with GLU)</p>

<p>To compile the game, just unpack all files into a directory of your
choosing and run "./configure". This generates the makefile for you and also
builds the executable. No "make" or "make install" are needed. You can then
run the game from this directory by running "./nodewarz"</p>

<h2>Main Menu</h2>

<p>The main menu is fairly simple. You just choose, whether you want to start
a new game or quit the application.</p>

<h2>Roster (creating and joining games)</h2>

<p>To create a game, click on the upmost left button of the roster until it
says "create game". Then choose an open (in case of a net game) UDP port on
which to create the game and press "Create game on this UDP port". You can
then add or remove players with "Add player" and "Remove player" buttons.
Clicking on the colors under the player name changes the player's color. If
more clients connect to the server, you can also choose who plays for which
player by clicking the "Change" button, next to the player name. On the right
side of the screen, you can see a list of all connected clients. Your server
will be listed here as "server".</p>

<p>To join a game, just click the upmost left button of the roster, until it
says "join game" and then type in the IP address and UDP port of an open
server game. After connecting to the server, you will see the player list and
client list, as being modified by the server.</p>

<p>Both server and client can update their nicknames by typing inside the
nickname text field and pressing the "Set nickname" button. They can also
write messages to each other by writing in the message field at the botton of
the screen and pressing [Enter].</p>

<h2>Playing guidelines</h2>

<div class="imageleft">
<img alt="Figure 1" src="fig1.png" /><br />
<div class="caption">
Fig. 1: This node obstructs creation of other nodes in the vicinity of the
resource
</div>
</div>

<div class="imageright">
<img alt="Figure 2" src="fig2.png" /><br />
<div class="caption">
Fig. 2: Credit mine
</div>
</div>

<h3>Building</h3>

<p>You take turns with your opponents in creating nodes and connecting them
with connections. To create a new node, first select the nodes that will be
connected to this node (with the connection tool - or [F3]) and then click on
"Add another node" (or press [F4]) and select the location of your new node.
You can see the cost of future construction on the status bar. The connection
cost is quadratic, which means that the longer the connection, the much more
expensive it is. Consider the following table of connection costs in relation
to connected node distances in grid units:</p>

<table>
  <caption></caption>
  <tbody>
    <tr>
      <td>Node distance in grid units</td>
      <td>2</td>
      <td>3</td>
      <td>4</td>
      <td>5</td>
      <td>6</td>
      <td>7</td>
      <td>8</td>
      <td>9</td>
      <td>more</td>
    </tr>
    <tr>
      <td>Connection cost in credits</td>
      <td>6</td>
      <td>14</td>
      <td>25</td>
      <td>39</td>
      <td>57</td>
      <td>77</td>
      <td>110</td>
      <td>128</td>
      <td>etc...</td>
    </tr>
  </tbody>
</table>

<p>So as you see, there is no explicit limit to node connection, but the
further you build, the more financially unbearable it gets.</p>

<p>Note: You cannot build new nodes too close to your own nodes or to the
enemy nodes. To see, where you can build, toggle the "show boundaries"
option.</p>

<h3>Dissintegrating nodes</h3>

<p>If you discover that your existing node is of no use or is obstructing
somehow, you can dissintegrate it. You do this by clicking the "Dissintegrate
button" and then clicking your node. Another click is then needed on the same
node to confirm dissintegration. Dissintegration costs you 5 credits.</p>

<div class="imageleft">
<img alt="Figure 3" src="fig3.png" /><br />
<div class="caption">
Fig. 3: PSI staff
</div>
</div>

<div class="imageright">
<img alt="Figure 4" src="fig4.png" /><br />
<div class="caption">
Fig. 4: Attack crystal
</div>
</div>

<h3>Resources</h3>

<p>Resources are the tiny 3D colorful objects on the map. You can view
ammounts of each resource by turning on the option "show resource
ammounts".</p>

<p>You collect resoures by building your nodes inside the resource active
radius (visible after pressing "show boundaries"). Beware though! If you
build your node outside of the radius, but too close to the resource, you
won't be able to build another node inside the radius (see fig. 1) and will
have to dissintegrate the node.</p>

<p>You shouldn't forget to establish an income by building a node within the
radius of a credit mine (fig. 2). This way you will get the specified ammount
of credits at the beginning of each turn (unless an enemy destroys your node
before your turn). If you fail in securing yourself a source of credits, you
soon won't be able to build anything or do any actions and are will thus lose
the game.</p>

<p>Another resource is PSI. You gain PSI by building your nodes near a PSI
staff (fig. 3). Such node experiences a gain to it's PSI value very quickly
(and more slower to the neighbouring nodes) and will be useful in PSI attacks
against enemy nodes or for increasing PSI value of friendly nodes.</p>

<p>The other resources are attack crystal (fig. 4), defence orb (fig. 5) and
theta well (fig. 6). They add attack, defence or theta energy respectively.
Theta energy is the node's hit point number.</p>

<div class="imageleft">
<img alt="Figure 5" src="fig5.png" /><br />
<div class="caption">
Fig. 5: Defence orb
</div>
</div>

<div class="imageright">
<img alt="Figure 6" src="fig6.png" /><br />
<div class="caption">
Fig. 6: Theta well
</div>
</div>

<h3>Collecting resources</h3>

<p>You collect the resources by bulding your node within the active radius of
the resource, that's right. But in case of attack, defence, theta and PSI
resources, you can propagate the resource gain throughout your node net.
Let's show you how.</p>

<p>Each node that is built inside the active radius of a resource gets all
the resources that the resource provides. These nodes are called "supplier
nodes". Then the resource propagates from the supplier node in following
fashion: nodes that are connected to supplier nodes are in layer number 1,
nodes connected to these nodes are in layer 2, etc... Each node has the
lowest layer number it can get. Then the resources are given to all
neighbouring nodes of each node (the nodes that are in LOWER layers don't
count), but they are divided among the neighbours and each neighbour gets
this nuber of resources MINUS ONE. This means that having more branched nets
leads to lower resource gain. On the other hand, each node grows
automatically at the beginning of each round and the growth is proportional
to the number of neighbours it has, so you have to balance your network of
nodes. You can also dissintegrate some nodes to eliminate resource losses.
See fig. 7 and 8 to see examples of good and bad resource distribution.</p>

<img alt="Figure 7" src="fig7.png" /><br />
<div class="caption">
Fig. 7: Well-distributed resources
</div>

<img alt="Figure 8" src="fig8.png" /><br />
<div class="caption">
Fig. 8: Badly-distributed resource
</div>


<h3>Attacks, defence and PSI attacks</h3>

<p>Attacking is done by selecting your node and then selecting the enemy
node. You will see the probability of successful attack in the status bar
during selection of the enemy node. If the attack was successful, the enemy
node will lose some of its defence, its lives and possibly even disappear.
The attacking node will slightly improve its attack and worsen its defence
and PSI energies even if the attack is unsuccessful.</p>

<p>Defending is done in the same fashion by selecting the defending node and
the accepting node. On a successful defence, the other node's defence and
lives are increased. The defending node will improve its defence energy and
lose some attack and PSI energy.</p>

<p>PSI energy can be use to eat up enemy PSI or fortify friendly PSI. Both
are done in similar fashion to attacking and defending. If an enemy node does
not have enough PSI and you perform a PSI attack on it successfully, it loses
all its connections and becomes your node. Even after an unsuccessful PSI
transfer, the node will imrove its PSI and lose some of its defence and
attack energies.</p>

<h2>Contact</h2>

<p>If you have any suggestions for imrovements or would like to submit a bug
report, mail the author to houska [dot sign] c [at sign] seznam [yet another
dot] cz, but please note that this project was "only" a semestral one person
programming project, so it definitely will have its bugs.</p>
</body>
</html>
